﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kopytko.BoardGame
{
    public class Wieza : Figura
    {
        public Wieza(Color kolor, Pole pozycja)
        {
            Kolor = kolor;
            Symbol = 'w';
            Pozycja = pozycja;
        }
        public Wieza(Figura pierwowzor)
        {
            Kolor = pierwowzor.GetKolor();
            Symbol = pierwowzor.Symbol;
            Pozycja = new Pole(pierwowzor.GetPozycja());
        }
        public override List<Ruch> PobierzDostepneRuchy(Plansza plansza)
        {
            if (ListaDostepnychRuchow == null)
            {
                ListaDostepnychRuchow = new List<Ruch>();
                List<Pole> Wektory = new List<Pole>();
                Wektory.Add(new Pole(0, 1));
                Wektory.Add(new Pole(0, -1));
                Wektory.Add(new Pole(1, 0));
                Wektory.Add(new Pole(-1, 0));
                foreach (Pole wektor in Wektory)
                {
                    Pole aktualne = this.Pozycja + wektor;
                    while (plansza.PoleDostepneDoRuchu(aktualne, this.Kolor))
                    {
                        ListaDostepnychRuchow.Add(new Ruch(this.Pozycja, aktualne));
                        aktualne += wektor;
                    }
                    if (plansza.PoleDostepneDoBicia(aktualne, this.Kolor))
                    {
                        ListaDostepnychRuchow.Add(new Ruch(this.Pozycja, aktualne));
                    }
                }
            }
            return ListaDostepnychRuchow;
        }
        public override bool JestKoniem()
        {
            return false;
        }
        public override bool JestKrolem()
        {
            return false;
        }
        public override bool JestKrolowa()
        {
            return false;
        }
        public override bool JestLaufrem()
        {
            return false;
        }
        public override bool JestPionkiem()
        {
            return false;
        }
        public override bool JestPuste()
        {
            return false;
        }
        public override bool JestWieza()
        {
            return true;
        }
    }
}
